Personal computers (PC's) are becoming increasingly popular and their use is becoming widespread. Because of the increased popularity of PC's and the use of multiple platforms, systems for communication between individual PC's are growing increasingly important. Although dedicated lines for communication between PC's or between PC's and other computers are the most reliable means for communication, the installation of sufficient lines to meet the demand in the current market makes this means impractical. It is therefore useful to develop more efficient and reliable systems for using standard telephone lines or other limited-bandwidth means to transfer data for computer communications.
Although this specification uses language relating to telephone lines, the invention relates equally to other transmission means which are more limited in bandwidth, hence slower, than networks, which can transfer data at a speed of at least one million bits per second (bps). The invention thus contemplates operation even in direct PC-to-PC environments, in which data is transferred in excess of 100,000 bps.
The use of telephone lines for computer communications is already well known, and the use of modems to transfer computer data across phone lines is commonplace. Modems and telephone lines are currently used to transfer data from PC to PC, between PC's and electronic bulletin boards (BBS) or dial-up services (e.g., CompuServe, America Online), and between PC's and servers which provide access to the Internet (sometimes called the information superhighway). There are, however, no existing means for multiactively operating an application (a computer program) resident on a computer through communications from another computer using modem communications or similar means, including digital signal processors. ("Multiactive" is used herein to refer to the ability of the invention to carry on communications regarding more than one task and/or user at a time, and is somewhat analogous to both multitasked communications and interactive communications, as will be explained in more detail below.) Similarly, there are no means in the prior art to accomplish remote, "on the fly" programming and control of one computer from another computer. "On the fly" programming refers to constructing or altering the programming of an application while that same application is executing. By altering the programming of an executing application, a new application is created which exists in the virtual space which is herein defined as the shared memory and resources of both the terminal and host, rather than in the hard storage of the terminal, from which prior art applications are transferred into memory.
The current standard for communications over telephone lines is commonly referred to as "ANSI", and is defined by the American National Standards Institute. The ANSI scripting language, or protocol, provides for the recognition of the IBM character set and 16 color codes which can be sent from a host computer to a remote computer upon which the received characters and colors will be displayed. The ANSI protocol makes no provision for graphics of any type other than the use of the predefined characters and colors. Further, in order for a remote computer's screen display to be altered, the entire display has to be redrawn by the host, requiring re-transfer of all of the screen information, not just that part which is changed.
Somewhat more advanced, mid-level protocols have been developed, such as RIPscript. "RIP" stands for Remote Imaging Protocol. While not standardized, RIPscript allows the use of very basic graphics which can utilize icons and several types of basic figures which have been previously downloaded to the remote computer. The disadvantages of RIPscript are that the graphics have to be downloaded to the remote computer, taking up space and download time and requiring updates whenever new graphics are to be used. Another major disadvantage is that RIPscript is not standardized and thus its widespread use is almost impossible. RIPscript thus improves upon ANSI to some extent, but it is still very unstable and has limited utility.
ANSI, RIPscript and other prior art-terminal communication protocols also have the disadvantage of being susceptible to line noise, which is common on normal phone lines. Because these protocols do not incorporate error checking, there is no assurance of data integrity and data errors can cause interruption, lock-up and termination of communications and/or programs. It is also common for data errors to cause the remote and host computers to lose track of each other's status or place in corresponding programs so that one computer's responses are not matched with the other computer's queries, thus resulting in the complete uselessness of subsequent data which is error-free. This factor alone significantly limits the potential commercial use of prior art systems.
Error checking on data transfers in low bandwidth systems has previously been implemented, but these implementations have several drawbacks. Error checking in this art is usually implemented in hardware. If the error checking on each end of a transfer is not identical however, no checking at all will be accomplished. For example, if the host computer hardware uses V.42bis checking and the remote computer uses MNP5 checking, then the two computers' hardware is incompatible in this respect and no error checking will be accomplished. Although error checking may be implemented in software as well, the protocol must again be the same on both ends of the transfer or it will not work, and typically host software and remote software are written by different companies which do not follow-any set standard and thus are usually incompatible.
Prior art error checking also suffers from the drawback that file transfer protocols (which are more likely to use compatible error checking methods) use error checking following each packet of information which is sent from the host to the remote computer, but the error checking is performed on discrete packets of information having a constant length, and the software does not allow for user interaction until completion of the file transfer. It is common for a terminal user to initiate a file transfer and abandon the terminal until the transfer is complete, because the terminal is useless for other purposes until the transfer ends. These error checking methods, as well as the non-multiactive information transfers (which must be terminated to enable unrelated information to be communicated), therefore have no utility in software which is multiactive between the host and remote computers and preclude the emulation of multitasking or timesharing applications.